
#!/bin/bash

# 并发数
CONCURRENT=10

# 总请求数
TOTAL_REQUESTS=50

# 输出日志文件
LOG_FILE="concurrent_test_$(date +%Y%m%d_%H%M%S).log"

echo "开始并发测试：并发数=$CONCURRENT，总请求数=$TOTAL_REQUESTS"
echo "日志将写入：$LOG_FILE"

# 控制并发数的函数
run_concurrent() {
  local running=0
  
  for i in $(seq 1 $TOTAL_REQUESTS); do
    # 如果达到并发数上限，等待
    while [ $running -ge $CONCURRENT ]; do
      wait -n
      running=$((running - 1))
    done
    
    # 启动一个后台任务
    {
      echo "=== 请求 $i 开始 ===" >> $LOG_FILE
      ./test_generate.sh >> $LOG_FILE 2>&1
      echo "=== 请求 $i 完成 ===" >> $LOG_FILE
    } &
    
    running=$((running + 1))
  done
  
  # 等待所有后台任务完成
  wait
}

run_concurrent

echo "并发测试完成，查看日志：$LOG_FILE"

